package com.example;

import java.util.Arrays;

/**
 * @desc:
 * @author: Shoko
 * @date: 2025/6/13
 */
// 3. 具体聚合类：存储商品名称数组
public class ProductAggregate implements Aggregate {
    private int count;
    private String[] products;

    public ProductAggregate(String[] products) {
        this.products = Arrays.copyOf(products, products.length);
        this.count = products.length;
    }

    // 创建迭代器（可扩展返回不同迭代器，这里演示前向）
    @Override
    public Iterator createIterator() {
        // 可根据需求返回 Forward/Backward，这里演示前向
        return new ForwardIterator(this);

        // 如果要直接测试后向：
        // return new BackwardIterator(this);
    }

    // 辅助方法：给迭代器暴露获取元素的能力
    public String getProduct(int index) {
        if (index < 0 || index >= count) {
            return null;
        }
        return products[index];
    }

    public int getCount() {
        return count;
    }
}
